//package nancal.mp.mvc.log
//
//import io.swagger.annotations.*
//import nancal.mp.db.mongo.*
//import nancal.mp.db.mongo.entity.*
//import nancal.mp.db.mongo.entity.log.*
//import nbcp.base.annotation.*
//import nbcp.base.annotation.mvc.*
//import nbcp.base.comm.*
//import nbcp.base.extend.*
//import nbcp.mvc.sys.*
//import nbcp.myoql.db.*
//import nbcp.myoql.db.mongo.*
//import nbcp.web.*
//
//import org.springframework.data.mongodb.core.query.*
//import org.springframework.web.bind.annotation.*
//import java.time.*
//import javax.servlet.http.*
//
///**
// * Created by CodeGenerator at 2024-04-23 18:47:46
// */
//@Api(description = "traceLog", tags = arrayOf("TraceLog"))
//@RestController
//@RequestMapping("/log/trace-log")
//class TraceLogAutoController {
//
//    @ApiOperation("列表")
//    @RequestMapping("/list", method = [RequestMethod.GET, RequestMethod.POST])
//    fun list(
//        id: String, //当列表列新一条后，刷新时使用
//        url: String, //当列表列新一条后，刷新时使用
//        body: String, //当列表列新一条后，刷新时使用
//        @Require skip: Int,
//        @Require take: Int,
//        request: HttpServletRequest
//    ): ListResult<TraceLog> {
//
//        mor.log.traceLog.query()
//            .apply {
//                if (id.HasValue) {
//                    this.where { it.id mongoEquals id }
//                }
//                if (url.HasValue) {
//                    this.where { it.id mongoLike url }
//                }
//                if (body.HasValue) {
//                    this.where { it.body mongoLike body }
//                }
//            }
//            .limit(skip, take)
//            .orderByDesc { it.id }
//            .toListResult()
//            .apply {
//                return this;
//            }
//    }
//
//    @ApiOperation("详情")
//    @PostMapping("/detail/{id}")
//    fun detail(
//        @Require id: String,
//        request: HttpServletRequest
//    ): ApiResult<TraceLog> {
//        mor.log.traceLog.queryById(id)
//            .toEntity()
//            .apply {
//                if (this == null) {
//                    return ApiResult.error("找不到数据")
//                }
//
//                return ApiResult.of(this)
//            }
//    }
//
//    @ApiOperation("更新")
//    @PostMapping("/save")
//    fun save(
//        @org.springframework.web.bind.annotation.RequestBody entity: TraceLog,
//        request: HttpServletRequest
//    ): ApiResult<String> {
//        //鉴权
//        var userId = request.UserId;
//
//        mor.log.traceLog.updateWithEntity(entity)
//            .withColumns(request.requestParameterKeys)
//            .run {
//                if (entity.id.HasValue) {
//                    return@run this.execUpdate()
//                } else {
//                    return@run this.execInsert()
//                }
//            }
//            .apply {
//                if (this == 0) {
//                    return ApiResult.error("更新失败")
//                }
//
//                return ApiResult.of(entity.id)
//            }
//    }
//
//    @ApiOperation("删除")
//    @PostMapping("/delete/{id}")
//    fun delete(
//        @Require id: String,
//        request: HttpServletRequest
//    ): JsonResult {
//        //鉴权
//        var userId = request.UserId
//
//        var entity = mor.log.traceLog.queryById(id).toEntity()
//        if (entity == null) {
//            return JsonResult.error("找不到数据")
//        }
//
//        mor.log.traceLog.deleteById(id)
//            .exec()
//            .apply {
//                if (this == 0) {
//                    return JsonResult.error("删除失败")
//                }
//                //实体上配置垃圾箱功能，可物理删除，会自动移到垃圾箱。
//                return JsonResult()
//            }
//    }
//}